/**
 * Company : Thai Informatic System Co., Ltd.
 * Created By : Dr.Tree
 * Created On : Jul 4, 2012  5:05:26 PM 
 * e-Mail : chatree@tis.co.th
 * Mobile Phone : (+66) 087-921-5115
 * Package Name : apps.business.process.sales.booking
 * File Name : BookingThread.java
 * TODO
 */
package apps.business.process.sales.booking;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import promis.utility.CommonService;

import apps.promis.out.sales.VwSyncMktBookConstructionAction;

/**
 * @author chatree
 *
 */
public class BookingThread extends Thread {

	private static final Logger log = Logger.getLogger(BookingThread.class);
	private String company = null;
    private String project = null;
    private String docType = null;
    private String name;
    
	private BookingThread(String company, String project, String docType){
		this.company = company;
		this.project = project;
		this.docType = docType;		
	}
	
    public void run()
    {
        //To store the number of Threads
        name=Thread.currentThread().getName();
        log.info(name);
        try {        	        
			
			List<Object[]> lst = new VwSyncMktBookConstructionAction().findAllByProject(company, project, "BS");
			if(lst != null){
				for(Object[] value : lst ){
					
					String BookingOrContarctNo = CommonService.IsNullRNull(value[2]);
					String status = CommonService.IsNullRNull(value[3]);
					String syncIsstaging = CommonService.IsNullRNull(value[4]);
					String issync = "N";
					
				    new SalesBookingSingleProcessing().Processing(company, project, BookingOrContarctNo, status, syncIsstaging, issync);
				    
				    sleep(1000);
				}
			}
			
			lst = new VwSyncMktBookConstructionAction().findAllByProject(company, project, "CS");
			if(lst != null){
				for(Object[] value : lst ){
					
					String BookingOrContarctNo = CommonService.IsNullRNull(value[2]);
					String status = CommonService.IsNullRNull(value[3]);
					String syncIsstaging = CommonService.IsNullRNull(value[4]);
					String issync = "N";
					
				    new SalesBookingSingleProcessing().Processing(company, project, BookingOrContarctNo, status, syncIsstaging, issync);
				    
				    sleep(1000);
				}
			}
			
		} catch (Exception e) {
			log.error(e.getMessage());
			System.err.println(e.getMessage());
		}	        
    }
    
       
    public static void main(String [] args){
    	// TODO Auto-generated constructor stub
		try{
			String company = "SP";
			
			List<String> lst = new ArrayList<String>();
			lst.add("BY");
			lst.add("CGVA");
			lst.add("CH3A1");
			lst.add("CH3A2");
			lst.add("CH3A3");
			lst.add("CH3A4");
			lst.add("CH3A5");
			lst.add("CH3A6");
			lst.add("CH3CT");
			lst.add("CH4");
			lst.add("CHR");
			lst.add("CHS");
			lst.add("CRF1");
			lst.add("CRF2");
			lst.add("CRRH");
			lst.add("CRV1");
			lst.add("CRV2");
			lst.add("EX");
			lst.add("NVOL");
			lst.add("OP3-3");
			lst.add("PO");
			lst.add("PT");
			lst.add("PVD");
			lst.add("RP");
			lst.add("SCH");
			lst.add("SCR-C");
			lst.add("SCR-R");
			lst.add("SCR-T");
			lst.add("SGV");
			lst.add("SGV-L");
			lst.add("SGV-P");
			lst.add("SGV5");
			lst.add("SGVJL");
			lst.add("SGVP");
			lst.add("SH");
			lst.add("SNVTP");
			lst.add("SP-AP");
			lst.add("SP-DR");
			lst.add("SP-S");
			lst.add("SPET");
			lst.add("SPK-A");
			lst.add("SPK-K");
			lst.add("SPK-P");
			lst.add("SPK-R");
			lst.add("SPK-T");
			lst.add("SPKRP");
			lst.add("SPKW");
			lst.add("SPP-S");
			lst.add("SPPC");
			lst.add("SPR");
			lst.add("SPV-P");
			lst.add("SPVOR");
			lst.add("SPVR5");
			lst.add("SPVRS");
			lst.add("SRP");
			lst.add("SRS");
			lst.add("SSL");
			lst.add("SV-PC");
			lst.add("SV-RB");
			lst.add("SV-SW");
			lst.add("SV5");
			lst.add("SVO-L");
			lst.add("SVP");
			lst.add("SVP-N");
			lst.add("SVP52");
			lst.add("SVSP");
			lst.add("SVT");
			lst.add("SW");
			lst.add("VCM");
			lst.add("VP");
			lst.add("VP48");
			lst.add("VPS");
			lst.add("VRAM");
			lst.add("VRK");
			lst.add("VSK");
			lst.add("VSP");
			
			String docType = "BS";
			
			for(String project : lst){
				new BookingThread(company, project, docType).start();
				sleep(3000);
			}
			
		}catch(Exception e){
			log.error(e.getMessage());
			System.err.println(e.getMessage());
		}
    }
    
}
